A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in any drawings hereto: Copyright (copyright) 2001, Volera, Inc., All Rights Reserved.
The present invention relates to fast filling media players, and in particular to methods and systems used to fast fill media buffers used by media players upon initial startup of the media player, thereby reducing latency associated with initial media player startup during a streaming data session.
A wide variety of off-the-shelf media players are available in the industry to play media data, such as video or audio data. Because the byte size associated with media data is typically very large, delivering media data to a media player can be technologically challenging. This challenge is especially problematic when a media player resides on a computing device that receives media data from a media source device via a connection with only limited bandwidth capabilities.
To solve the media data delivery problem, a number of solutions have been developed. First, increased bandwidth connections to media source devices have become readily available to end-users. Some of these increased bandwidth connections include cable connections, Digital Subscriber Line (DSL) connections, satellite connections, and the like. Furthermore, end-users, in some cases, have elected to completely download media data to their local computing devices before playing the media data on the media player. Moreover, the industry has developed data streaming techniques, streaming communication protocols, and caching techniques to reduce latency or perceived latency associated with delivering media data to media players.
Generally, existing data streaming techniques intentionally introduce latency in order to buffer the media data. This allows the data to be processed more uniformly, thereby permitting the media player to continuously play a stream of media data. As the media player consumes media data, additional media data are received, thereby keeping the media player""s buffer full. In this way, the media data appear to play uninterrupted to an end-user viewing or listening to the media data within the media player""s viewer. Accordingly, initial latency is believed to be necessary to improve the end-user""s overall experience so that, once play is initiated, it is not choppy (e.g., interrupted).
Yet, latency associated with initially starting the media player is annoying to end-users and often the end-users attribute poor service to the initial startup delays. Existing media players do not start playing the media data until enough media data are received into the media player""s buffer to support the data streaming process. As a result, the end-user experiences an intentional and often frustrating latency until the media player""s buffer acquires enough media data from the media source device to begin playing.
Generally, streaming content requires startup delays, when played on media players, for periods of five seconds or more as the media player""s buffer is populated with media data. Moreover, the streaming content is delivered to the media player at a fixed rate using a fixed bandwidth. Correspondingly, the streaming content cannot avoid startup delays with present methods and systems.
As is apparent, there exists a need for improving the delivery of streaming content to existing media players, wherein an initial latency can be eliminated or substantially diminished. In this way, end-users will experience immediate service from a streaming content provider. Moreover, there exist a need for the end-user to not have to modify existing media players to reduce startup latency. Further, there exists a need for the end-user to be able to maintain the end-user""s existing bandwidth connections and still enjoy a latency-free media player.
In one embodiment of the present invention, a method to fast fill a media player is provided, wherein a latency associated with a startup time of a media player required to initially play media data is identified. Furthermore, a bandwidth of the media player associated with receiving the media data in a buffer of the media player is identified. Additionally, the bandwidth is increased by a factor resulting in the media data filling the buffer before the startup time thereby decreasing the latency.
In another embodiment of the present invention, a method of customizing an increased bandwidth associated with fast filling a media buffer is provided. A player bandwidth associated with a media player and a stream bandwidth associated with streaming media data over a media transport to the media player are identified. Moreover, a transfer bandwidth of the media data is established to initially fill the media buffer of the media player over the media transport by selecting the transfer bandwidth to be the player bandwidth increased by a multiplier determined by dividing the stream bandwidth by the player bandwidth.
In still another embodiment of the present invention, a method of fast filling a media player is provided, wherein a plurality of data communication requests to a media source is used. Furthermore, a plurality of media data transfer sessions associated with each communication request is established with the media source. Also, portions of media data are simultaneously received during each of the transfer sessions into a buffer associated with the media player and residing on a client. Finally, when the buffer is filled the media player is initiated.
In yet another embodiment of the present invention, a media data system to provide media data to a media player is provided. The media data system includes a buffer associated with a media player and media data received from a cache into the buffer. The media player uses the media data, when a minimum size of the media data is acquired at a startup prior to the media data being used by the media player. The cache acquires the minimum size of the media data prior to a request by the media player for the media data and delivers the minimum size of the media data on the request by the media player by transferring the media data into or out of the buffer at a rate in excess of a bandwidth rate associated with the media player.
In still another embodiment of the present invention, a system for fast filling media data into a media player""s buffer at startup is provided. The system includes a media player, a media buffer used by the media player to play media data, and a data transfer controller. The controller acquires the media data from a media source data storage and overloads the media buffer at a startup to reduce latency associated with the startup of the media player.
Still other aspects of the present invention will become apparent to those skilled in the art from the following description of various embodiments. As will be realized the invention is capable of other embodiments, all without departing from the present invention. Accordingly, the drawings and descriptions are illustrative in nature and not intended to be restrictive.